import PyInstaller.__main__
import os
import shutil

def build_exe():
    # 获取当前目录
    current_dir = os.path.dirname(os.path.abspath(__file__))
    
    # 定义图标路径
    icon_path = os.path.join(current_dir, "clipboard.ico")
    
    # 定义 PyInstaller 参数
    params = [
        'clipboard_manager.py',  # 主程序文件
        '--name=剪贴板管理器',  # 生成的exe名称
        '--onefile',  # 打包成单个文件
        '--noconsole',  # 不显示控制台窗口
        '--clean',  # 清理临时文件
        '--add-data=clipboard.ico;.',  # 添加图标文件
        '--add-data=qrcode.png;.',  # 添加二维码图片
        f'--icon={icon_path}',  # 设置程序图标
        '--hidden-import=PIL._tkinter',  # 添加隐藏导入
        '--hidden-import=win32clipboard',
        '--hidden-import=win32con',
        '--hidden-import=win32api',
        '--hidden-import=win32gui',
    ]
    
    # 运行 PyInstaller
    PyInstaller.__main__.run(params)
    
    # 创建必要的目录
    dist_dir = os.path.join(current_dir, 'dist')
    data_dir = os.path.join(dist_dir, 'data')
    file_dir = os.path.join(dist_dir, 'file')
    
    # 确保目录存在
    os.makedirs(data_dir, exist_ok=True)
    os.makedirs(file_dir, exist_ok=True)
    
    print("打包完成！")
    print(f"可执行文件位置: {os.path.join(dist_dir, '剪贴板管理器.exe')}")

if __name__ == "__main__":
    build_exe() 